1. Technical Field
The present invention relates to object instantiation and migration in a network environment, and more particularly to systems and methods for improved instantiation and migration of objects including virtual machines.
2. Description of the Related Art
In a cloud computing environment virtual machines (VMs) are instantiated on demand based on client needs. For management and scalability reasons, the instantiation of VMs usually happens over a datacenter network. In a typical scenario, a client selects a preconfigured VM image (created either by the client or another person) and requests the instantiation of the VM (or multiple VMs) based on that image. Instantiating the VM image requires transferring all the contents of the image over the network from an image library server to a hypervisor that is going to host the VM. In different implementations, it is possible to transfer on-demand the contents of the image that are needed for a given computation task. In addition, for reasons related to the optimization of the cloud infrastructure, VMs may dynamically migrate from one hypervisor to another over the datacenter network.
If VM instantiation and migration happen in high frequency (as it is expected in a cloud computing environment), they can lead to considerable consumption of network resources. The exhaustion of networking resources can result in a bottleneck which will prevent realization of the full potential of cloud computing since the current solutions to this problem either: 1) try to minimize the VM migrations to those that are absolutely necessary (only after hardware/hypervisor failures), which unfortunately limits the potential of the cloud infrastructure to deal with very dynamic loads; 2) try to deploy the image library servers closer to the host servers (hypervisors), which comes at the cost of either replicating the image library contents to multiple locations or limiting the deployment of specific images to specific locations (e.g., in the Amazon cloud, the image deployment is limited to regions); and 3) try to limit the maximum number of network resources used by the VM instantiation and migration processes (by rate limiting their traffic), which results in longer instantiation or migration times, again limiting the agility of the cloud environment.